﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using ProyectoVeranoAECAasp.IOAccesos;
using ProyectoVeranoAECAasp.AccesoDatos.ClasesMiscelaneas;

namespace ProyectoVeranoAECAasp.AccesoDatos
{
    public static class AccesosLogin
    {
        // - ATRIBUTOS -----
        // - _manejadorArchs: Para llamadas a los métodos de manejo de archivos
        //ManejoArchivos _manejadorArchs = new ManejoArchivos();


        // - METODOS -----
        public static bool comprobarExistenciaUsuario(String p_Usuario, String p_Pass)
        {
            //Busqueda en la base de datos de la existencia del usuario
            String sql = @"SELECT COUNT(*)
                           FROM Usuario
                           WHERE Usuario.Login = @usuario AND 
                           Usuario.Password = @password";
            //----
            String miCadenaConexion = ManejoArchivos.leer_CadenaCNX();
            using (SqlConnection conexionDB = new SqlConnection(miCadenaConexion))
            {
                conexionDB.Open();

                SqlCommand sentencia = new SqlCommand(sql, conexionDB);
                sentencia.Parameters.AddWithValue("@usuario", p_Usuario);
                sentencia.Parameters.AddWithValue("@password", p_Pass);

                int resultadoCount = Convert.ToInt32(sentencia.ExecuteScalar());
                //----
                if (resultadoCount == 0)
                    return false;
                else
                    return true;
            }
        }

        // - ejecutaSP_AutenticarUser: LLama al sp_AutenticarUser y devuelve su data
        // en un datatable
        public static List<String> ejecutaSP_AutenticarUser(String p_Login, String p_Pass)
        {
            Elementos_SP_AutenticarUser dataUser = null;
            List<String> listaDatosString = new List<string>();
            String sql = @"sp_AutenticarUser";
            String miCadenaConexion = "";
            //----
            miCadenaConexion = ManejoArchivos.leer_CadenaCNX();
            using (SqlConnection conexionDB = new SqlConnection(miCadenaConexion))
            {
                conexionDB.Open();

                SqlCommand sentencia = new SqlCommand(sql, conexionDB);
                sentencia.CommandType = CommandType.StoredProcedure;
                sentencia.Parameters.Add(new SqlParameter("@pi_Login", p_Login));
                sentencia.Parameters.Add(new SqlParameter("@pi_Password", p_Pass));

                SqlDataReader drStore = sentencia.ExecuteReader();

                while (drStore.Read())
                {
                    dataUser = new Elementos_SP_AutenticarUser(Convert.ToInt32(drStore.GetValue(0)), Convert.ToInt32(drStore.GetValue(1)), drStore.GetValue(2).ToString(),
                    drStore.GetValue(3).ToString(), drStore.GetValue(4).ToString(), drStore.GetValue(5).ToString());
                    //-conversion
                    listaDatosString.Add(dataUser.idUsuario.ToString());
                    listaDatosString.Add(dataUser.FKID_TipoUsuario.ToString());
                    listaDatosString.Add(dataUser.Login);
                    listaDatosString.Add(dataUser.Nombre);
                    listaDatosString.Add(dataUser.Apellido1);
                    listaDatosString.Add(dataUser.TipoUsuario);
                }
                drStore.Close();
                return listaDatosString;
            }
        }
    }
}
